package nus.iss.ga.controller.common;

import java.util.List;

import nus.iss.ga.controller.model.Container;

/**
 * @author Fum Kok Siong
 *
 */
public interface IGAController {

	public boolean runGA();
	
	public List<Container> getResults();
	
	public void setContainerInList(List<Container> list);
	
	public void setNumOfEvolutionInThousand(int numOfEvolution);
	
	public int getNumOfEvolutionInThousand();

	int getNumberOfS();

	void setNumberOfS(int numberOfS);

	int getNumberOfC();

	void setNumberOfC(int numberOfC);

	int getNumberOfR();

	void setNumberOfR(int numberOfR);

	public void setPenaltyForDestination(double penaltyForDestination);

	public double getPenaltyForDestination();

	public void setPenaltyForItemState(double penaltyForItemState);

	public double getPenaltyForItemState();

	public void setPenaltyForItemType(double penaltyForItemType);

	public double getPenaltyForItemType();

	public void setPenaltyForHeavierAtTop(double penaltyForHeavierAtTop);

	public double getPenaltyForHeavierAtTop();

	public void setMutationRate(int mutationRate);

	public int getMutationRate();

	public void setCrossoverRate(double crossoverRate);

	public double getCrossoverRate();

	public void setPopulationSize(int populationSize);

	public int getPopulationSize();
	
	public void stop();
}
